/// File:		Informant.h
/// Author:		Dennis Norton
/// Date:		03/28/12
/// Purpose:	This class contains static functions that write to the console window.

#ifndef INFORMANT_H_
#define INFORMANT_H_

/// These three #defines are used for the Informant, DO NOT CHANGE!
#define STRINGIFY(x) #x
#define TOSTRING(x) STRINGIFY(x)
#define LOCATION  __FUNCTION__ ", Line: " TOSTRING(__LINE__) " - "
///////////////////////////////////////////////////////////////////


#include <assert.h>
#define Inform(Msg, VA) Informant::Log(LOCATION, Msg, VA);
#define Crash(Condition) Informant::Log(LOCATION, "Asserting"); assert((Condition));

class Informant
{
	Informant(){}
	~Informant(){}

public:
	/// Function:	Log
	/// Author:		Dennis Norton
	/// Date:		03/28/12
	/// Purpose:	This call prints to the console window and writes to a log file.
	static void Log(char* Where, char* msgFormat, ...);
};

#endif